но если ты не знаешь порядок выполнения и системные функции карты(которые редактор создаёт сам) то забудь про создание мода Nikita_Gamers, инициализация
создание триггера,регистрация события,добавление действий и условий к триггеру
также лучше вынести все инициализации в другой поток(ибо лимит)
и нужно стартануть этот поток из начального потока
скорее всего ты ничерта не понял поэтому советую xgm.guru/p/wc3/code-flow-and-data-access
и вытащи из пустой мапы j файл чтобы глянуть какие там функции(начальный поток стартует из функции main)
и посмотри какие бж вызываются из main чтобы знать какую функцию редактировать в близард джи
А касательно остальной части, если UnitUserData нигде не используется, создаешь массив юнитов и отрядов. Массив юнитов забиваешь своими капитанами. В UnitUserData капитана пихаешь его порядковый номер в массиве. Создаешь группу юнитов для этого капитана.
Добавление через каст способности.
Я бы делал через 2 разные абилки с одной и той же позицией в интерфейсе. Пока нужный тебе юнит не является частью отряда - у него таргетная абилка при касте которой на капитана он добавляется в группу соответствующего капитана и получает 2ю абилку взамен первой.
Касательно выделения этих пехотинцев - можно намутить что-то с передачей контроля или создать триггер, который будет снимать выделение с юнитов у которых есть 2я абилка. Если ты хочешь чтобы по одиночке можно было выделять пехотинцев - можешь создать переменную для каждого игрока с капитанами, куда будет просто записываться последний выбранный юнит. При снятии выделения - проверять не выбран ли этот же юнит, в случае чего не снимать выделение. Правда не уверен будет ли корректно работать :> В крайнем случае - будет работать в три клика вместо двух. Если я не ошибаюсь.
Касательно поведения этих пехотинцев - что-то реально стоящее сделать сложно. Возможно, но мне не с руки все расписывать :> Простейший вариант - приказывать пехотинцам после добавления в группу следовать за капитаном.
Добавление через атаку капитана
Триггер, проверяющий что капитан получил урон или атакован, как угодно. Далее любым способом проверяешь есть ли в группе этого капитана юниты. Если нет - выбираешь всех пехотинцев N радиусе, добавляешь в отряд, заменяешь абилку/либо просто приказываешь кастануть в капитана первую абилку.
Параметры стака ядов с одним и тем же баффом, это нужно чтобы складывались замедлени и\или урон от разных юнитов, или бафф тупо обновлялся.
С одним из параметров яды с разными баффами скатаются независимо, каждый вешает свой бафф. (годная основа для замедляющих способностей)
А игра вылетает из за зацикливания, темболее бафф при удалении и появлении наносит 0.00 ед урона, это так для справки.
подведя итоги
простого способа нету
надо писать громоздкую систему с таймером и проверками на приказ, время с последней атаки и местоположения(на случай если юнит побежит за целью)
Mrachny, DesiMorti, нифига не верно
событие юнит умирает
откуда взяться приказу?
или вы думаете что в компе сидят маленькие человечки которые читают ваши мысли и следят чтобы всё работало так как вы того хотите?
должен вас огорчить но их не существует
и приказа не существует(ибо его никто не создал) DesiMorti, есть куча систем отлова урона
даже есть статья на гуи на эту тему
хоть иногда статьи читайте
а вообще всё делается намного проще
просто помечаем построенный здания (например при постройке даём им дамми спел)
а при смерти юнита проверяем помечен он или нет(например есть ли у него дамми спел)
и если помечен то создаём юнитов
Использовать глобальные переменные с префиксами или называть их с заглавных букв. Только так. Странно, что редактор вообще даёт возможность это скомпилить.
во первых перенеси весь не системный код из j в wct файл
для того чтобы понять что стоит переносить а что нет придётся выучить jass и прочесть кучу статей(минимум 50)
Какой точный вопрос, однако.
Ответ: триггерно, либо в редакторе объектов, если нужно изменить характеристики, не создаваемые/изменяемые триггерно.
Попытаюсь сыграть в экстрасенса, подстрахуюсь логикой:
Если нужно, чтобы изменялась характеристика количественно, т.е, например, увеличивался наносимый урон, то в действии нанесения урона вместо точного значения нужно выставить функию (формулу, зависимость etc.) имеющую аргументом уровень способности.
Если нужно менять характеристику качественно, например, тип наносимого урона, то следует использовать условия, сравнивающие уровень способности с нужным значением и... далее есть несколько вариантов реализации, но наиболее подходящий - просто выполнять все последующие действия триггера внутри оператора, а затем создать несколько раз скопировать его для других условий. Хотя, с точки зрения программирования, это не очень хороший вариант.
отменять постройку юнита если технология уже ап
либо как сразу говорили через ап здания
где каждому твоему зданию будет соответствовать такое же здание но с дополнительным слотом
с продажей юнита открываешь доту и смотришь как там сделан спелл передать предметы у куры
он сделан как раз через продажу юнита
иначе никак
если не нравится пожалуйся богу об этом
или близардам
пусть выпустят новый патч специально для тебя
E: Unit starts the effect of an ability.
C: Ability being cast =
A: Set Casting unit Life to (Life of Casting unit + 200).
Вот скрин настройки действия.
По случайному стечению обстоятельств я делал похожую систему.
Лови мапу.
Когда будешь пробовать:
Возьми герою огнестрельное оружие (оно должно быть в 1 слоте инвентаря)
Когда у героя огнестрел, он лишается возможности атаковать в ближнем бою. Стрельба осуществляется щелчком левой кнопки мыши (приказ smart) по противнику. Чтобы целиться было легче, включай режим позиционного огня (горячая клавиша А), тогда герой будет стрелять по щелчку не только по противникам, но и в точку.
Стрелы/пули летят по прямой и разбиваются о препятствия. Они ранят первого противника на своем пути. Можно настроить АОЕ.
Все триггеры, связанные с системкой в директории Missile Sys. Так же нужен Bribe's Unit Indexer. Это один триггер и он лежит рядом.
Выделяешь всех юнитов в определенной области в группу. Так есть определенный радиус действия (круг выбора области заклинанием типа у бурана, огненного столба и др.), в редакторе называется "Область воздействия", вокруг центра каста перебираешь всех юнитов
Создаешь dummi и кастуешь над каждым юнитом в группе способность "гнев деревьев". Или пробуешь полностью триггерно создать эффект обхвата юнитов (эти лозы и корни деревьев), паузишь и периодически таймером наносишь урон до определенного времени (под конец удаляешь эффект, а если кто-то умер, то также удаляешь эффект). Только, когда триггерно делаешь, баффы нацепить не сможешь, придеться также делать. Заморочек со вторым способом больше
Способность пустышку можно создать на основе канала.
Askarto,
Текстуры ландшафта находятся в файлах War3.mpq и War3x.mpq
в папке \TerrainArt\
Пример:
Распаковываешь \TerrainArt\Cityscape\City_GrassTrim.blp Перерисовываешь как надо, закидываешь в карту по этому же адресу. Город - Газон будет выглядеть так как нарисуешь :)
область- x1 x2 y1 y2
Если координата юнита x1<=X=<x2 и y1<=Y<=y2, то юнит в области с этими координатами. Иначе его там нет. Да и в гуи, вроде было, область содержит точку
Ну насчет первых двух вопросов не знаю. Не супер-пупер картодел. Но с последним - скачай вот это: xgm.guru/p/wc3/jassnewgenpack-exp это расширенный редактор, там можно и карту гиганта сделать и текстур добавить больше чем возможно, по моему до 16 штук, да и еще много чего, включая выключение огранки на декор и т.д. Когда запустиш через эту програмку редактор - появиться в верху дополнительные кнопочки. Нажимаеш на Extensions и в менюшке - Edit Tileset. И выбирай до 16 любых текстур... Вплоть до полной замены всех текстур карты. ..
Есть в редакторе такая вещь как Игровой интерфейс. Дополнительно - Игровой интерфейс. Ставишь галочку сверху окна. И находишь Модель: герой на мине карте. И меняешь из импорта или на любую схожую модельку, например рудника.
А также там можно найти пинги, но это нужно поискать, он там есть это точно bazeba:
Есть в редакторе такая вещь как Игровой интерфейс. Дополнительно - Игровой интерфейс. Ставишь галочку сверху окна. И находишь Модель: герой на мине карте. И меняешь из импорта или на любую схожую модельку, например рудника.
А также там можно найти пинги, но это нужно поискать, он там есть это точно
Ой извени, не Модель, а Пиктограмма: герой на минекарте bazeba:
Есть в редакторе такая вещь как Игровой интерфейс. Дополнительно - Игровой интерфейс. Ставишь галочку сверху окна. И находишь Модель: герой на мине карте. И меняешь из импорта или на любую схожую модельку, например рудника.
А также там можно найти пинги, но это нужно поискать, он там есть это точно bazeba:
Есть в редакторе такая вещь как Игровой интерфейс. Дополнительно - Игровой интерфейс. Ставишь галочку сверху окна. И находишь Модель: герой на мине карте. И меняешь из импорта или на любую схожую модельку, например рудника.
А также там можно найти пинги, но это нужно поискать, он там есть это точно
Ой извени, не Модель, а Пиктограмма: герой на минекарте
Все намного проще чем Вы думаете. В меню редактора "Сценарий => Дополнительно" есть такая галочка, называется "Скрытые области частично видимы", убери эту галочку и будет тебе магия)
p.s.: Если сразу не включится функция пересохрани карту и перезапусти варик.
Берешь и делаешь карту сам, копипастишь из доты и обрезаешь под размер 128 на 128 или 256 на 256 в формате тга, а затем импортируешь в карту по подходящему пути, инфа есть в оглавлении статей.
(
бд-база данных
баг-когда 1 триггер перемещает предмет а 2 удаляет врезультате эфект от предмета есть а сомого предмета нету
но ты с бд замучаешся если герой атакует ведь это надо отслеживать ловкость и все предметы
цикл это loop если что
В Состоянии скорости атаки в +5-100% более всего видна разница по сравнению с исходным интервалом атаки. Между состояниями +300% АС и +400% АС разницу заметить очень трудно.
Короче самыми значимыми будут бонусы, которые ты получаешь пока суммарный бонус АС близок к нулю.
Скорость атаки каждого юнита варьируется от -80% (в 4 раза больший интервал) до +400% (в 4 раза меньший интервал). То есть, если у тебя 0% АС и тебя замедляют на 40% - то на скорости атаки это очень сильно скажется. В то же время если у тебя +350% АС и тебя замедлили на 40%, то эффекта тупо не будет видно.
Но 0% будет едва ли, т.к. каждое очко ловкости даёт 2% скорости атаки.
баф у ауры убрать нельзя
ибо именно баф даёт все бонусы ауры
для теста можешь триггерно удалять ауру и баф с юнита
бонус от ауры тут же исчезнет
а если не удалять баф то он повесит пару секунд давая бонус
лучше всего это видно на доспехах веры
так что пиши свою ауру
на основе таймера с периодом в 1 секунду и перебором всех юнитов на расстоянии R от владельца ауры и добавлении им бонусов
а так же удалением бонусов у отошедших юнитов
да эт верно nvc123, да вджасс. в мапе был один гуи триг, в нем было несколько действий.
короче я jngp переставил и все стало работать корректно... ???
сори за бессмысленную трату вашего времени. как закрыть вопрос?
Хмм Вроде разобрался скрыть и показать функции почему то багуют всё дело
ОМГ сам затупил под ночь простите... Там есть еще одна похожая функция это свернуть развернуть спутал :) Всё теперь всё работает : D Ура теперь милая мультиборда будет на ресурсах а не громоздкая лидерборда (да еще и без иконок была)
Хз. Вставил твой скрипт- все работает. Может быть у тебя сбилась переменная bj_lastCreatedMultiboard или она ссылается на другой мультиборд? Или у тебя индексы криво иницализированы (0-11), а GetConvertedPlayerId(p) возвращает 1-12. Или может у тебя событие кривое или оно вообще отсутсвует? Короче скинь целиком скрипт.
вариант первый
делаем бд с мин/макс атакой всех юнитов
и в мультибоард отображаем данные из бд
второй вариант
через рб достаём данные из памяти
но ты второй вариант скорее всего не осилишь
про то как сделать то что я написал ты можешь прочесть там
Хмм Вроде разобрался скрыть и показать функции почему то багуют всё дело
ОМГ сам затупил под ночь простите... Там есть еще одна похожая функция это свернуть развернуть спутал :) Всё теперь всё работает : D Ура теперь милая мультиборда будет на ресурсах а не громоздкая лидерборда (да еще и без иконок была)
Джин, как тебе уже ответили выше, данная способность не отображается на панели (спасибо близард), как и ряд других (камень жизни, амулет маны и т.д. и т.п.)
Показать ее наличие можно только одним способом - созданием способности-пустышки (для таких целей идеально подойдет лунный чакрум/крит с 0 шансом и 0 увеличением урона).
Оптимальный вариант - способность пустышку добавить в РО твоему юниту, а при инициализации карты тригерно добавить уже нужную (в нашем случае способность проклятия).
2.20 Как в редакторе объектов ставить отрицательные значения?
Файл=> Параметры=> Общие=> поставить галочку напротив "Разрешить использование в редакторе объектов отрицательных значений".
Выбрать необходимое поле, зажать Shift и нажать Enter (или двойной клик мышкой). Теперь можно вводить отрицательное значение.
На основе этого возможно сделать ауру, отнимающую броню, отрицательную регенерацию здоровья и многое другое=)
Понял. Есть много текстов у стандартных баффов, где есть запятые. Короче если изменить стандартное описание, там тоже обрезают. Вот взять бафф с текстом, и на его основе создать новый нестандартный там тоже обрезка будет (хотя текст не редактировал). Придется как-то изворачиваться с текстом
Я сам разобрался с проблемой. Конечно тут две новые появились, но на них забью уже:
ИИ не нравился герой, из-за него вообще никто не нанимался.
ИИ посчитал, что улучшив главное здание, он лишается главного здания, а значит нужно его снова строить. То есть, например, улучшив ратушу до крепости, он считает, что ратуши больше нет и необходимо построить ещё одну. Потом он крепость улучшит до замка, посчитает, что разрушили крепость, улучшит до крепости ратушу№2, снова потеряет ратушу и построит уже третью.
bladget, скорее всего (если у тебя Vista или W7 стоит), в старой папки остались "файлы совместимости", которые не удаляются просто так. В WoO много всякого мусора было...
я так и хотел ответь, что надо прописывать у обычных " Имя" ,без всяких там ATT, BTN..., а файлу DIS прописать "DISимя"
Все равно, ты бы мне этим не помог, потому что главные читы заключаются в том, что можно прописывать любой билебердовый кастомный путь, сохраняя иконкам одинаковые названия.)
Я сделал так:
0\Ability
1\Ability
2\Ability
...
ReplaceableTextures\CommandButtonsDisabled\DISAbility
При этом, числом в пути я просто обозначаю способности, хотя туда в принципе можно даже название прописывать, чтоб было понятно, что это за иконка(кстати, переделаю это дело)
Увы нет, смотреть из за чего ошибка и потом смотреть что в коде могло её вызвать.
Так же нелишним будет собрать статистику а что именно происходило в этот момент и изучать код, кторый работал в этот момент.
Фаталить могут даже дефолтные способности.
» WarCraft 3 / Пожалуйста, помогите с способностью!
» WarCraft 3 / Тип атаки
» WarCraft 3 / Событие
» WarCraft 3 / синтаксис
» WarCraft 3 / Как сделать способность?
» WarCraft 3 / текстуры ландшафта
» WarCraft 3 / Перемещение области.
» WarCraft 3 / По типу рельефа
» WarCraft 3 / мини карта
» WarCraft 3 / Замена порчи
» WarCraft 3 / Скорость атаки
» WarCraft 3 / Аура на увеличение магического урона
» WarCraft 3 / Библиотеки
» WarCraft 3 / Мультиборд
» WarCraft 3 / Новая раса и новый ИИ.
» WarCraft 3 / Редактировать способность
» WarCraft 3 / Боты не добывают золото!
» WarCraft 3 / Разные версии
» WarCraft 3 / Способность снижение урона